# 数据整理/统一将每个人的数据做成标准的1-100
import cv2
# 算法库
import numpy as np
# 机器学习的方法库 scikit-learn
from sklearn.model_selection import train_test_split
import os
def face5Data():
    pro=3
    dirs=os.listdir("ren/%s/"%pro)
    # print(dirs)
    # 存储所有图片的名字
    nameList=[]
     # 2  4 5 7.。。100 101 102.。。135
    # 1.补齐前面100张 2.多出100删掉
    # 循环读取每张图片 16.jpg 18.jpg [16,jpg]
    for d in dirs:
        # print(d)
        s=int(d.split(".")[0])
        # print(s)
        nameList.append(s)
    # print(nameList)
    # 将数据转化成算法类型
    npNameList=np.array(nameList)
    # 1.找出大于100
    moreThan100=npNameList[npNameList>100]
    # 2.找出小于100
    lessThan100=npNameList[npNameList<=100]
    # 3.小于100的缺失哪些
    # 正常数1-100
    compareTo100=np.arange(1,101)
    loseName=list(set(compareTo100).difference(lessThan100))
    print(loseName)

    # 大于100的没用的删掉（优先看前面有没有缺失，先补齐100前面的缺失再删除）
    # 126.jpg --- 1.jpg
    for i,file in enumerate(moreThan100):
        try:
            # 补齐前面小于100的
            os.rename("ren/%s/%s.jpg"%(pro,file),"ren/%s/%s.jpg"%(pro,loseName[i]))
        except:
            # 删掉
            os.remove("ren/%s/%s.jpg"%(pro,file))

    # 1 2 3 4  5 6 7 8 9.。。。71
    # 如果总数不够100张，小于100张内自己随机几张补齐
    for i in loseName:
        randomName=np.random.choice(lessThan100,size=1)[0]
        # 读取随机到的图片
        img=cv2.imread("ren/%s/%s.jpg"%(pro,randomName))
        # 写回缺失的位置
        cv2.imwrite("ren/%s/%s.jpg"%(pro,i),img)

    #统一图片尺寸
    for i in compareTo100:
        img=cv2.imread("ren/%s/%s.jpg"%(pro,i))
        newImg=cv2.resize(img,dsize=(64, 64))
        #将修改后的图片装回去
        cv2.imwrite("ren/%s/%s.jpg"%(pro,i),newImg)





